home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1995 May / cd Ware (Juegos) Epimundo.iso / DOS / C / CMATH.ZIP / POLEVL.ASM < prev    next >
Encoding:
Assembly Source File  |  1986-12-20  |  1.8 KB  |  117 lines

  1. ;    Static Name Aliases
  2. ;
  3.     TITLE   polevl
  4.  
  5. _TEXT    SEGMENT  BYTE PUBLIC 'CODE'
  6. _TEXT    ENDS
  7. CONST    SEGMENT  WORD PUBLIC 'CONST'
  8. CONST    ENDS
  9. _BSS    SEGMENT  WORD PUBLIC 'BSS'
  10. _BSS    ENDS
  11. _DATA    SEGMENT  WORD PUBLIC 'DATA'
  12. _DATA    ENDS
  13. DGROUP    GROUP    CONST,    _BSS,    _DATA
  14.     ASSUME  CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
  15. PUBLIC  _polevl
  16. PUBLIC  _p1evl
  17. _DATA    SEGMENT
  18. EXTRN    __chkstk:NEAR
  19. EXTRN    __fac:NEAR
  20. EXTRN    __fltused:NEAR
  21. $T20001        DQ    0000000000H    ;    .0000000000000000
  22. ans    DQ    0
  23. ctrlw    DW    0
  24. _DATA ENDS
  25. _TEXT      SEGMENT
  26.     PUBLIC    _polevl
  27. _polevl    PROC NEAR
  28.     push    bp
  29.     mov    bp,sp
  30.     mov    ax,12
  31.     call    __chkstk
  32.     push    si
  33.     mov    si,[bp+12]
  34. ;    fstcw    ctrlw
  35. ;    fwait
  36. ;    mov    ax,ctrlw
  37. ;    or    ax,00100h
  38. ;    mov    ctrlw,ax
  39. ;    fldcw    ctrlw
  40.  
  41.     fldz
  42.     fwait    
  43.     mov    ax,[bp+14]
  44.     inc    ax
  45.     mov    [bp-12],ax
  46. $D15:
  47.     fmul    QWORD PTR [bp+4]
  48.     add    si,8
  49.     fwait
  50.     fadd    QWORD PTR [si-8]
  51.     fwait    
  52.     dec    WORD PTR [bp-12]
  53.     jne    $D15
  54.     fstp    ans
  55. ;    fstcw    ctrlw
  56. ;    fwait
  57. ;    mov    ax,ctrlw
  58. ;    and    ax,0feffh
  59. ;    mov    ctrlw,ax
  60. ;    fldcw    ctrlw
  61.  
  62.     lea    ax, ans
  63.     fwait    
  64.     pop    si
  65.     mov    sp,bp
  66.     pop    bp
  67.     ret    
  68. _polevl    ENDP
  69.  
  70.     PUBLIC    _p1evl
  71. _p1evl    PROC NEAR
  72.     push    bp
  73.     mov    bp,sp
  74.     mov    ax,12
  75.     call    __chkstk
  76.     push    si
  77.  
  78. ;    fstcw    ctrlw
  79. ;    fwait
  80. ;    mov    ax,ctrlw
  81. ;    or    ax,00100h
  82. ;    mov    ctrlw,ax
  83. ;    fldcw    ctrlw
  84.  
  85.     mov    si,[bp+12]
  86.     fld    QWORD PTR [bp+4]
  87.     add    si,8
  88.     fadd    QWORD PTR [si-8]
  89.     fwait    
  90.     mov    ax,[bp+14]
  91.     dec    ax
  92.     mov    [bp-12],ax
  93. $D26:
  94.     fmul    QWORD PTR [bp+4]
  95.     add    si,8
  96.     fadd    QWORD PTR [si-8]
  97.     fwait    
  98.     dec    WORD PTR [bp-12]
  99.     jne    $D26
  100.     fstp    ans
  101.     lea    ax, ans
  102. ;    fstcw    ctrlw
  103. ;    fwait
  104. ;    mov    ax,ctrlw
  105. ;    and    ax,0feffh
  106. ;    mov    ctrlw,ax
  107. ;    fldcw    ctrlw
  108.     fwait    
  109.     pop    si
  110.     mov    sp,bp
  111.     pop    bp
  112.     ret    
  113. _p1evl    ENDP
  114.  
  115. _TEXT    ENDS
  116. END
  117.